#!/bin/bash

# 修复所有模型文件中的数据库调用问题
# 将 db.execute() 替换为 query() 方法

echo "🔧 开始修复数据库调用问题..."

# 定义模型文件目录
MODELS_DIR="../backend/src/models"

# 检查目录是否存在
if [ ! -d "$MODELS_DIR" ]; then
    echo "❌ 模型目录不存在: $MODELS_DIR"
    exit 1
fi

# 修复所有 .js 文件
for file in "$MODELS_DIR"/*.js; do
    if [ -f "$file" ]; then
        filename=$(basename "$file")
        echo "📝 修复文件: $filename"
        
        # 1. 替换导入语句
        sed -i '' 's/const db = require/const { pool, query } = require/g' "$file"
        
        # 2. 替换 db.execute() 调用
        # 处理带解构赋值的情况: const [rows] = await db.execute -> const rows = await query
        sed -i '' 's/const \[\([^]]*\)\] = await db\.execute(/const \1 = await query(/g' "$file"
        
        # 处理不带解构赋值的情况: await db.execute -> await query
        sed -i '' 's/await db\.execute(/await query(/g' "$file"
        
        # 处理其他 db.execute 调用
        sed -i '' 's/db\.execute(/query(/g' "$file"
        
        echo "✅ 完成修复: $filename"
    fi
done

echo "🎉 所有数据库调用问题修复完成！"
echo "📋 修复内容:"
echo "   - 更新了导入语句以使用 { pool, query }"
echo "   - 将所有 db.execute() 调用替换为 query()"
echo "   - 移除了不必要的数组解构赋值"

echo "\n🔄 重启服务器以应用更改..."